#include <iostream>
using namespace std;

int add(int x,int y)
{
    return x + y;
}

//函数指针
void test0(){
    //简略写法
    //定义函数指针时要确定其指向的函数
    //的返回类型和参数信息
    int (*p)(int,int) = add;
    cout << p(1,1) << endl;
    //完整写法
    int (*p1)(int,int) = &add;
    cout << (*p1)(1,3) << endl;
}

//指针函数，返回值为指针
//需要确保返回值这个指针指向的变量声明周期比函数要长
int num = 100;
int * f(){
    int * p = &num;
    return p;
}

void test1(){
    cout << *f() << endl;
}


int main(int argc, char * argv[])
{
    test1();
    return 0;
}

